สร้าง EC2 ใหม่โดยใช้งาน Private IP และ MAC Address เดิม
จุดเริ่มต้น
สวัสดีครับ ผมไลท์ครับ ในครั้งนี้เลยอยากจะมาแนะนำวิธีการใช้งาน instance ใหม่ โดยใช้ Private IP กับ MAC Address ให้เหมือนกับตัวก่อนครับ โดยปกติหากคุณลบ EC2 instance ผ่าน management console MAC Address หรือ private IP addresses จะหายไป พอสร้าง instance ใหม่ทั้ง 2 อย่างนี้ก็เปลี่ยนเป็นตัวใหม่ไปแล้ว ซึ่งอาจเป็นปัญหาสำหรับบางท่านที่มีการใช้ซอฟต์แวร์ที่เชื่อมกับ MAC Address หรือ private IP addresses ตัวก่อนทำให้ใช้งานต่อได้ไม่ราบรื่นนักครับ
วิธีทำ
จากเอกสารนี้จะระบุว่า ENI(Elastic Network Interface)จะเก็บข้อมูลได้หลากหลายรวมไปถึง Private IP , MAC Address ด้วยครับ ด้วยเหตุนี้เราจึงสามารถใช้งาน ec2 instance ใหม่โดยไม่ลบ ENI และทำให้สามารถใช้ MAC Address และ Private IP เดิมแทนได้แม้ว่าจะลบ EC2 เดิมไปแล้วก็ตาม
ลงมือทำ
เริ่มที่ทำการสร้าง EC2 instance ให้อยู่ในสถานะพร้อมใช้งานก่อนครับ
โดยสามารถอ้างอิงขั้นตอนการสร้างจาก Blog ทางด้านบนได้เลยครับ
รายละเอียดของ EC2 instance ที่สร้างขึ้นมาครับ
Name : ENI_TEST_2.1
AMI : Amazon Linux 2 AMI Kernel 5.10
Instnce Type : t2.micro
KeyPair : ENI_TEST_2.1
Network Setting :
Security group name : ENI_TEST_2.1
Description : ENI_TEST_2.1
Security group rule 1
Type: ssh
Source type:My IP
ไปที่ EC2 instance ที่เปิดใช้งานแล้วเข้าไปตรวจสอบ MAC address และ Private IP รวมไปถึง instance ID เพื่อนำไปใช้เปรียบเทียบครับ โดยครั้งนี้จะใช้ PuTTY ในการตรวจสอบครับ
$ ip address
〜〜〜〜เนื้อหาที่ย่อแล้ว〜〜〜〜
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 02:d6:06:fa:68:4a brd ff:ff:ff:ff:ff:ff
inet 172.31.28.106/20 brd 172.31.31.255 scope global dynamic eth0
〜〜〜〜เนื้อหาที่ย่อแล้ว〜〜〜〜
$ curl http://169.254.169.254/latest/meta-data/instance-id
i-042**************
- " 02:d6:06:fa:68:4a " คือ MAC Address (link/ether 02:d6:06:fa:68:4a brd ff:ff:ff:ff:ff:ff)
- " 172.31.28.106/20 " คือ Private IP (inet 172.31.28.106/20 brd 172.31.31.255 scope global dynamic eth0)
- " i-042************** " คือ instance id
หรือจะตรวจสอบผ่านหน้า Management console ก็ได้ครับ
จากหน้า EC2 instance ไปที่หัวข้อ Networking
→ Interface ID
จะพบ ENI (eni-xxxxxxxx)
ของ EC2 instance ซึ่งจะแสดงรายละเอียดต่างๆ รวมไปถึง Private IP และ MAC address ด้วยครับ
จากนั้นเลือกที่ ENI ของ instance ไปที่ action
เลือก change termination behavior
✅ออกที่Delete on instance termination
เพื่อไม่ให้ ENI นี้หายไปหลังจากลบ instance ไปแล้วครับ จากนั้นเลือกSAVE
ก็เสร็จการตั้งค่าครับ
จากนั้นterminate
ec2 instance ผ่าน management console
หลังจาก instance ถูกลบแล้วสถานะ ENI ก็เปลี่ยนจาก In-use (ถูกใช้งานอยู่) เป็น available (พร้อมใช้งาน)
**ถ้าไม่เอา✅ออกจาก Delete on instance terminationในขั้นตอนก่อนหน้านี้ ENI นี้จะถูกลบไปด้วยครับ**
สร้าง instance ใหม่
ในขั้นตอนนี้เราจะนำ EC2 instance ใหม่ให้กลับมาใช้ ENI ตัวเดิมกันครับ
ถ้าต้องการ copy ข้อมูล instance ตัวก่อนสามารถทำได้ด้วยใช้ AMI ครับ สามารถดูรายละเอียดที่ Blog ด้านล่างครับ
และเลือก subnet
ตัวเดียวกับ ec2 instance ที่ลบไปแล้ว
**หากไม่เลือก subnet และ VPC เดียวกับ EC2 instance ที่ลบไปแล้วจะไม่สามารถเลือก ENI ตัวเดิมได้ครับ**
ในหัวข้อ network interface
คลิกที่เมนู pull down แล้วเลือก ENI เมื่อสักครู่เข้าไปได้เลย
*การเลือก ENI จะไม่สามารถระบุ SecurityGroup ได้ เพราะ ENI จะมีผูก SecurityGroup ตัวก่อนไว้อยู่แล้ว *
จากนั้นทำการ start instance
ตามปกติ แล้วรอขึ้นสถานะ "Running"
เมื่อ instance พร้อมใช้งานแล้วเข้าระบบไปที่ตรวจสอบ Private IP และ MAC Address
$ ip address
〜〜〜〜เนื้อหาที่ย่อแล้ว〜〜〜〜
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 02:d6:06:fa:68:4a brd ff:ff:ff:ff:ff:ff
inet 172.31.28.106/20 brd 172.31.31.255 scope global dynamic eth0
〜〜〜〜เนื้อหาที่ย่อแล้ว〜〜〜〜
$ curl http://169.254.169.254/latest/meta-data/instance-id
i-0ee**************
หรือจะเข้าไปตรวจสอบผ่าน network interface
บน Management console ก็ได้ครับ
จะเห็นได้ว่า instance ID เปลี่ยนแต่ Private IP และ MAC address เดิมยังอยู่แล้วสามารถใช้งานต่อได้ครับ
- " 02:d6:06:fa:68:4a " คือ MAC Address (link/ether 02:d6:06:fa:68:4a brd ff:ff:ff:ff:ff:ff)
- " 172.31.28.106/20 " คือ Private IP (inet 172.31.28.106/20 brd 172.31.31.255 scope global dynamic eth0)
- " i-0ee************** " คือ instance id
สุดท้ายนี้
เท่านี้เราก็สามารถเก็บ Private IP และ MAC Address เดิมไว้ใช้ได้แล้วครับ แต่ว่าหากลืมลบ ENI ที่ไม่จำเป็นต้องใช้งานแล้วแนะนำให้ลบดีกว่าเพราะว่ามันมีค่าบริการครับหวังว่าบทความนี้จะมีประโยชน์แก่ทุกท่านนะครับ